﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Archivos.Pdf;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;

namespace EGuayas.Web.EGlobal
{
    public partial class pgEnviarDoc : pgBase
    {
      
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
                //TODO var asigandas de principal
              
                this.stoRol.DataSource = new object[]
                {
                    new object[] { "65a5bf8d-2c4c-49df-8cd2-a0cf7fb94599", "Director" },
                    new object[] { "2f761c4c-b859-4d55-8a2c-1b0245f5732c", "Sub-Director"},
                };
                this.stoRol.DataBind();
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        #region Expander Grid
        protected static void GrdSubDoc_Command(object sender, DirectEventArgs e)
        {
            /*
                string commandName = e.ExtraParams["command"];
                long Id = Convert.ToInt64(e.ExtraParams["Id"]);
            */
        }
        [DirectMethod]
        public static string GetSubDoc(Dictionary<string, string> parameters)
        {
            ArchivoSubArchivosCriteria criteria = ArchivoSubArchivosCriteria.NewArchivoSubArchivosCriteria();
            criteria.Id = parameters["id"];
            criteria.Tabla = Valores.Modulo_Archivo_Licenciamiento;

            var data = ArchivoLista.GetArchivoLista(criteria);
          
            if (data.Count != 0)
            {
              
                GridPanel grid = new GridPanel
                {
                    Height = 90,
                    EnableColumnHide = false,
                    Store = 
                    { 
                            new Store 
                            { 
                                Model = {
                                    new Model {
                                        IDProperty = "Id",
                                        Fields = 
                                        {
                                            new ModelField("Id"),
                                            new ModelField("Nombre"),
                                            new ModelField("Descripcion"),
                                            new ModelField("FechaCreacion"),
                                            new ModelField("Version"),
                                            new ModelField("Ruta")
                                        }
                                    }
                                },
                                DataSource = data
                            }
                     },
                    ColumnModel =
                    {
                        Columns = { }
                    },

                };


                Column addColumn1 = new Column();
                addColumn1.Text = "Nombre";
                addColumn1.DataIndex = "Nombre";
                addColumn1.Flex = 4;
                grid.ColumnModel.Columns.Add(addColumn1);

                Column addColumn2 = new Column();
                addColumn2.Text = "Descripción";
                addColumn2.DataIndex = "Descripcion";
                addColumn2.Flex = 4;
                grid.ColumnModel.Columns.Add(addColumn2);

                Column addColumn3 = new Column();
                addColumn3.Text = "Fecha";
                addColumn3.DataIndex = "FechaCreacion";
                addColumn3.Flex = 4;
                grid.ColumnModel.Columns.Add(addColumn3);

                Column addColumn4 = new Column();
                addColumn4.Text = "Versión";
                addColumn4.DataIndex = "Version";
                addColumn4.Flex = 4;
                grid.ColumnModel.Columns.Add(addColumn4);

                CommandColumn commandColumn = new CommandColumn();
                commandColumn.ID = "colAction" + System.Guid.NewGuid();
                commandColumn.Flex = 1;
                //commandColumn.Text = "Visualizar";
                commandColumn.DataIndex = "Id";
                commandColumn.Commands.Add(new GridCommand { Icon = Ext.Net.Icon.Zoom, CommandName = "View", Text = "Vizualizar" });
                commandColumn.Listeners.Command.Handler="AppGlobalJs.showPdf('../../..',record.data.Ruta);";
              

                //commandColumn.DirectEvents.Command.Event += GrdSubDoc_Command;
                //commandColumn.DirectEvents.Command.ExtraParams.Add(new Parameter { Name = "Id", Value = "record.data.Id" });
                //commandColumn.DirectEvents.Command.ExtraParams.Add(new Parameter { Name = "command", Value = "command" });
                 grid.ColumnModel.Columns.Add(commandColumn);
                return ComponentLoader.ToConfig(grid);
            }
            return null;
        }
        #endregion Expander Grid
        [DirectMethod]
        public ArchivoLista BindData()
        {
            try
            {
            ///Modificar sesion page
            ArchivoCriteria archCriteria = ArchivoCriteria.NewArchivoCriteria();
            archCriteria.ExpedienteId = GetSessionPage.ExpedienteId("");
            archCriteria.FaseId = "";
            //archCriteria.TipoDocumento = "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380008";
            return ArchivoLista.GetArchivoLista(archCriteria);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
       
        protected void btnRevisar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                
             
                RevisionFase objRevFase = RevisionFase.NewEditableRoot();
                objRevFase.Id = System.Guid.NewGuid();
                objRevFase.PersonaId = GetSessionUsuario.UsuarioId;
                objRevFase.RevisorId = e.ExtraParams["hdcbxRol"];
                objRevFase.Fecha = DateTime.Now;
                objRevFase.Aprobado = "N";
                ArchivoRevisar objArchRev = new ArchivoRevisar();
                objArchRev.Id = System.Guid.NewGuid();
                objArchRev.RevisionFaseId = "";
                objArchRev.ArchivoId =Guid.Parse(e.ExtraParams["hdDocRevizarId"]);
                objArchRev.Aprobado = "N";
                objRevFase.ArchivoRevicion.Add(objArchRev);
                
                objRevFase.Save();

                gpDocumentosLoad.GetStore().Reload();
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO,
                    Title = "Success",
                    Message = string.Format("{0}<br/>", "Archivo asignado a revisión")
                });
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }


        }

        


    }


}